// 导入 Joi 来定义验证规则
const Joi = require("joi");

const username = Joi.string().alphanum().min(1).max(20).required().messages({
    'string.empty': '用户名不能为空',
    'string.alphanum': '用户名只能包含字母和数字',
    'string.min': '用户名长度至少为1个字符',
    'string.max': '用户名长度不能超过20个字符',
    'any.required': '用户名是必填项'
});

const password = Joi.string().min(6).max(15).required().messages({
    'string.empty': '密码不能为空',
    'string.min': '密码长度至少为6个字符',
    'string.max': '密码长度不能超过15个字符',
    'any.required': '密码是必填项'
});

exports.regSchema = {
    body:{
        username,
        password
    }
}
exports.loginSchema = {
    body:{
        username,
        password
    }
}
exports.updateUsernameSchema = {
    body: {
        username: Joi.string().alphanum().min(1).max(20).required().messages({
            'string.empty': '用户名不能为空',
            'string.alphanum': '用户名只能包含字母和数字',
            'string.min': '用户名长度至少为1个字符',
            'string.max': '用户名长度不能超过20个字符',
            'any.required': '用户名是必填项'
        })
    }
}
exports.resetPasswordSchema = {
    body: {
        password: Joi.string().min(5).max(15).required().messages({
            'string.empty': '旧密码不能为空',
            'string.min': '旧密码长度至少为5个字符',
            'string.max': '旧密码长度不能超过15个字符',
            'any.required': '旧密码是必填项'
        }),
        newPassword: Joi.string().min(5).max(15).required().messages({
            'string.empty': '新密码不能为空',
            'string.min': '新密码长度至少为5个字符',
            'string.max': '新密码长度不能超过15个字符',
            'any.required': '新密码是必填项'
        })
    }
}
exports.avatarSchema = {
    body: {
        newAvatarURL: Joi.string().uri().required().messages({
            'string.empty': '头像不能为空',
            'string.uri': '头像必须是一个有效的URL',
            'any.required': '头像是必填项'
        })
    }
}

